package com.fesine.learn.design.principle.dependenceinversion;

/**
 * @description: 用户类
 * @author: fesine
 * @createTime:2019/2/16
 * @update:修改内容
 * @author: fesine
 * @updateTime:2019/2/16
 */
public class User {

    //v1 用户学习课程,原始版

    //void studyJava(){
    //    System.out.println("User学习java课程!");
    //}
    //void studyFE(){
    //    System.out.println("User学习FE课程!");
    //}

    //v2 通过参数传入学习具体的课程

    //void studyMyCourse(ICourse iCourse){
    //    iCourse.studyCourse();
    //}

    //v3 通过构造器,取消通过方法传入课程

    private ICourse iCourse;

    //public User(ICourse iCourse) {
    //    this.iCourse = iCourse;
    //}


    /**
     * v4 通过setter方法实现
     * @param iCourse
     */
    public void setiCourse(ICourse iCourse) {
        this.iCourse = iCourse;
    }

    void studyMyCourse(){
        iCourse.studyCourse();
    }
}
